#ifndef MESSAGE_H
#define  MESSAGE_H



typedef struct
{
	uchar ID;
	uword prm;
}MESSAGE;



typedef enum
{
	POWER_MODULE,  ///0   
	///VIDEO_MODULE,
	///AUDIO_MODULE,
	///TFT_MODULE,
	MAIN_MODULE,	     
	TUNER_MODULE,	
	BT_MODULE,
	MPEGC_MODULE,
	SPI_MODULE,     
	MMI_MODULE,
	///EEPROM_MODULE,
#if 1
	NAVI_MODULE,	
#endif
#if TV_FUNCTION==1
	TV_MODULE,
#endif
#ifdef D_SANYOCDC_SUPT	
	CDC_MODULE,
#endif
	NUMOFMODE
}MSG_MODULE;

#define QUEUE_LENGTH       12

typedef struct
{
	uword QueIndex;
	MESSAGE Queue[QUEUE_LENGTH];
}MSGQUEUE;




extern bool PostMessage(MSG_MODULE Module,uchar ID,uword param);
extern bool PostMessageMutex(MSG_MODULE Module,uchar ID,uword param);
extern void InsertMessage(MSG_MODULE Module,uchar ID,uword param);
extern MESSAGE *GetMessage(MSG_MODULE Module);
extern MESSAGE *QueryMessage(MSG_MODULE Module);
extern void ClearMessage(MSG_MODULE Module);

extern uword GetMessageLength(MSG_MODULE Module);


#endif

